import dotenv from 'dotenv';
import path from 'path';
import { fileURLToPath } from 'url';

// 加载环境变量
dotenv.config();

// 获取当前文件的目录
const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);

// 服务器配置
export const SERVER_CONFIG = {
  // 服务器基本配置
  NODE_ENV: process.env.NODE_ENV || 'development',
  HOST: process.env.HOST || '0.0.0.0',
  PORT: process.env.PORT || 5000,
  API_DOMAIN: process.env.API_DOMAIN || 'localhost',
  API_IP: process.env.API_IP || '127.0.0.1',

  // 数据库配置
  DB: {
    HOST: process.env.DB_HOST || 'localhost',
    USER: process.env.DB_USER || 'root',
    PASSWORD: process.env.DB_PASSWORD || '',
    NAME: process.env.DB_NAME || 'markdown_editor',
    PORT: process.env.DB_PORT || 3306,
    CONNECTION_LIMIT: process.env.DB_CONNECTION_LIMIT || 10
  },

  // 邮件配置
  MAIL: {
    HOST: process.env.MAIL_HOST,
    PORT: process.env.MAIL_PORT || 465,
    USER: process.env.MAIL_USER,
    PASS: process.env.MAIL_PASS,
    FROM: process.env.MAIL_FROM || 'Markdown编辑器 <no-reply@example.com>'
  },

  // JWT配置
  JWT: {
    SECRET: process.env.JWT_SECRET || 'your-secret-key',
    EXPIRES_IN: process.env.JWT_EXPIRES_IN || '7d'
  },

  // 前端URL
  FRONTEND_URL: process.env.FRONTEND_URL || 'http://localhost:5173',
  
  // 上传目录
  UPLOADS_DIR: path.join(__dirname, '../uploads'),
  AVATARS_DIR: path.join(__dirname, '../uploads/avatars'),
  IMAGES_DIR: path.join(__dirname, '../uploads/images'),

  // AI配置
  AI_API_KEY: process.env.AI_API_KEY || '' ,
  AI_BASE_URL: process.env.AI_BASE_URL ,
  AI_MODEL: process.env.AI_MODEL ,

  // 获取API URL
  getApiUrl: function() {
    return `https://${this.API_DOMAIN}:${this.PORT}`;
  },

  // 获取图片URL
  getImageUrl: function(filename, req) {
    // 使用请求头中的host或配置的域名
    const host = (req && req.headers.host) || `${this.API_DOMAIN}:${this.PORT}`;
    return `https://${host}/uploads/images/${filename}`;
  },

  // 获取前端URL（用于重定向）
  getFrontendUrl: function(req) {
    // 在开发环境中，可能希望使用请求头中的origin
    if (this.NODE_ENV === 'development' && req && req.headers.origin) {
      return req.headers.origin;
    }
    return this.FRONTEND_URL;
  }
};

// 默认导出配置
export default {
  server: SERVER_CONFIG,
  // 其他配置项
}; 